/*
 * IndiceColumna.h
 *
 *  Created on: Jun 4, 2012
 *      Author: lucasj
 */

#ifndef INDICECOLUMNA_H_
#define INDICECOLUMNA_H_

#include "Validador.h"
#include "Consulta.h"

typedef std::multimap<int, std::string>::iterator iteradorColumna;

namespace ColumnIndex {

class IndiceColumna {
private:
	std::multimap<int, std::string> map;
	Validador& validator;
	void insertarOrdenado(std::string& dimension, int posTabla);
	void obtenerSiguientePosicion(unsigned int
					    &posAnterior, unsigned int &posActual, std::string &linea);
public:
	IndiceColumna(Validador& val);
	virtual ~IndiceColumna();
	void Cargar(std::string &linea);
	void obtenerValorColumna(Consulta& pregunta, std::ostringstream &res);
	friend std::ostringstream& operator<<(std::ostringstream& oss, IndiceColumna &indice);
	void obtenerListado(int pos, std::list<std::string>& lista);
};
std::ostringstream& operator<<(std::ostringstream& oss, IndiceColumna &indice);

}
#endif
